
package controlador;
import modelo.Nadador;
import vista.VentanaRegistrarNadadores;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.util.Locale;
import vista.ValidacionesGenerales;
import java.awt.event.KeyListener;
import java.util.LinkedList;
import modelo.Equipo;
import controlador.ControladorRegistrarNadadores;




public class ControladorRegistrarNadadores implements ActionListener,KeyListener{
    private VentanaRegistrarNadadores miVentaNada;

    private Nadador nada;
    private Equipo equipo;

    public ControladorRegistrarNadadores(Equipo equipo) {
       this.equipo= equipo;
        miVentaNada = new VentanaRegistrarNadadores();
      miVentaNada.addListener((ActionListener)this);
      miVentaNada.addListener((KeyListener)this);
      
      nada=new Nadador();
      miVentaNada.estadoBotonRegistrar(false);
      
    
    }

    
    public void actionPerformed(ActionEvent evt) {
        
        if (evt.getSource() instanceof JButton)
         { 
             
             JButton boton= (JButton) evt.getSource();
             
              if (boton.getActionCommand().equals("Registrar"))
             { 
               if(validarNadador()){
                  
               
               }else{
                                   
                 AgregarNadador(miVentaNada.getSexo(),miVentaNada.getEspecialidad(),miVentaNada.getTiempo(),miVentaNada.getCedula(),miVentaNada.getNombre(),miVentaNada.getApellido(),miVentaNada.getFechaNacimiento());
                 vista.MensajesGenerales.mostrarMensaje("Nadador Registrado con Exito");
                 miVentaNada.limpiar();
                 miVentaNada.estadoBotonRegistrar(false);}
                 
             }
               
              if(boton.getActionCommand().equals("Modificar"))
              {
              if(miVentaNada.getCedula().length()==0 ){
         
                      vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
                }else{
              
              modificarNadador(miVentaNada.getSexo(),miVentaNada.getEspecialidad(),miVentaNada.getTiempo(),miVentaNada.getCedula(),miVentaNada.getNombre(),miVentaNada.getApellido(),miVentaNada.getFechaNacimiento());
               vista.MensajesGenerales.mostrarMensaje("Nadador Modificado con Exito");
               miVentaNada.limpiar();
              }
              }
               if(boton.getActionCommand().equals("Eliminar"))
              {
                  
               if(miVentaNada.getCedula().length()==0 ){
         
                  vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
             }else{
               vista.MensajesGenerales.mostrarMensajeCuestion("Desea eliminar el Registro");
               
             eliminarNadador(miVentaNada.getCedula());
              vista.MensajesGenerales.mostrarMensaje("Nadador Eliminado con exito");
              miVentaNada.limpiar();
              }
              }
              if(boton.getActionCommand().equals("Cancelar"))
              {
              
              miVentaNada.limpiar();
             
              }
               if(boton.getActionCommand().equals("Salir"))
               {
              
                  miVentaNada.dispose();
                }
    
    
    
         }
    }

    public void keyPressed(KeyEvent e) {
       if (e.getKeyCode()==KeyEvent.VK_ENTER)
       {
           
           
        if(miVentaNada.getCedula().length()==0 ){
         
       vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
         }else{
        
    
           BuscarNadador();}
       }   
           
           
    }
 void BuscarNadador(){
     
     nada=BuscarNadador(miVentaNada.getCedula());
        if (nada!=null){
            miVentaNada.limpiar();
            
            miVentaNada.setCedula(nada.getCedula());
           
            miVentaNada.setApellido(nada.getApellido().toUpperCase(Locale.FRENCH));
           
            miVentaNada.setEspecialidad(nada.getEspecialidad());
            miVentaNada.setFechaNacimiento(nada.getFecha_naci());
            miVentaNada.setTiempo(nada.getTiempo());
            miVentaNada.setNombre(nada.getNombre().toUpperCase(Locale.FRENCH));
            miVentaNada.setSexo(nada.getSexo());
            miVentaNada.estadoBotonRegistrar(false);
          
        }

else{
             vista.MensajesGenerales.mostrarMensajeCuestion("No Existe ,Desea Registrar");
             miVentaNada.focusNombre();
             miVentaNada.estadoBotonRegistrar(true);
        }

}

    public void keyTyped(KeyEvent e) {
      String campo;
           campo=miVentaNada.getCedula();
        char caracter = e.getKeyChar();
        if( caracter < '0' || caracter > '9') 
      
            e.consume(); 
        else
            if (campo.length()==12)
               e.consume();  
    }

    public void keyReleased(KeyEvent e) {
    }
    
    
    public boolean validarNadador(){
 
 if(miVentaNada.getCedula().length()==0 ){
         
       vista.MensajesGenerales.mostrarMensajeErrores("Ingrese la cedula");
      return true;}
       
        else if (miVentaNada.getNombre().length()==0|| miVentaNada.getApellido().length()==0 ){
                vista.MensajesGenerales.mostrarMensajeErrores("NO puedes dejar Campos en blancos verifique");
     return true;}
        else if(!vista.ValidacionesGenerales.isDate(miVentaNada.getFechaNacimiento())){
              vista.MensajesGenerales.mostrarMensajeErrores("Error de fecha"); 
               return true;
        }else if(miVentaNada.getTiempo()<0){
                 vista.MensajesGenerales.mostrarMensajeErrores("Ingrese el numero de competencias juzgadas"); 
               return true;}
               
             else if(miVentaNada.getTiempo()>=0)
                   
                return false;
         else
                 
              return false;
 }
    
    
    
    public  Nadador BuscarNadador(String Cedula)
 {
     boolean encon=false;
   Nadador nada=null;
   String Ced;
   int j;
  

   for (j = 0; j <  equipo.getLista().size() && !encon; j++) 
   {
     nada=(Nadador)equipo.getLista().get(j);
     Ced=nada.getCedula();
    
     if (Ced.equals(Cedula.trim())) 
       encon=true;  
       
   } 
    
   if (encon)
     return nada;     
   else
     return null;  
       
  }

    
    public  void AgregarNadador(String sexo, String especialidad,int tiempo, String cedula, String nombre, String apellido, String fecha_naci) 
{

    Nadador nadador = new Nadador(); 
    nadador.setCedula(cedula) ;
    nadador.setNombre(nombre);
    nadador.setApellido(apellido);
    nadador.setFecha_naci(fecha_naci);
    nadador.setSexo(sexo);
    nadador.setEspecialidad(especialidad);
    nadador.setTiempo(tiempo);
    equipo.getLista().add(nadador); //Lo agrega a la lista
}
   
    public void modificarNadador(String sexo, String especialidad,int tiempo, String cedula,String nombre, String apellido, String fecha_naci) {
        
      
   boolean encon=false;
   Nadador nada=null;
   String Ced;
   int j;
      
   for (j = 0; j <  equipo.getLista().size() && !encon; j++) 
   {
     nada=(Nadador)equipo.getLista().get(j);
     Ced=nada.getCedula();
    
     if (Ced.equals(cedula.trim())){
       encon=true;  
       nada.setApellido(apellido);
       nada.setEspecialidad(especialidad);
       nada.setNombre(nombre);
       nada.setTiempo(tiempo);
       nada.setFecha_naci(fecha_naci);
       nada.setSexo(sexo);
       equipo.getLista().set(j, nada);
     
     }
   } 

   }
  public  void eliminarNadador(String cedula) {
        
      
   boolean encon=false;
   Nadador nada=null;
   String Ced;
   int j;
      
   for (j = 0; j < equipo.getLista().size() && !encon; j++) 
   {
     nada=(Nadador)equipo.getLista().get(j);
     Ced=nada.getCedula();
    
     if (Ced.equals(cedula.trim())){
       encon=true;  
        equipo.getLista().remove(j);
     
     }
   }   
  }
  
}

